/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"5C790117-2CB8-4DCB-9ACF-BBEB01D1E849",variableType:4}
 */
var es_preview = null;

/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"77D635C0-0656-4934-9251-AE440B0030ED",variableType:4}
 */
var fSucursal = null;

/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"5D6F0395-19B7-4C3B-809B-3DF5D471C276",variableType:4}
 */
var fNroFactura = null;

/**
 * @type {String}
 *
 * @properties={typeid:35,uuid:"8BD0872C-17D3-4987-BBC7-03CEE5B5AA25"}
 */
var fLetra = null;

/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"753BF3CA-BE86-439C-A15E-38E5B3F13297",variableType:4}
 */
var fRemNro = null;

/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"BBE04B10-51DD-457E-B07B-6DBCC4F38880",variableType:4}
 */
var fRemSucursal = null;

/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"D22444CE-C4F4-419E-AB8B-44CB1F3F0B12",variableType:8}
 */
var fTotKg = 0;

/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"4DF64699-B681-48FA-B837-A1F2B85AFEDF",variableType:8}
 */
var fTotP2 = 0;

/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"E50E6218-EBDA-4B18-B3F4-DAEE2C9CDC15",variableType:8}
 */
var fTotRecep = 0;

/**
 * Handle changed data.
 *
 * @param {Object} [oldValue] old value
 * @param {Object} [newValue] new value
 * @param {JSEvent} [event] the event that triggered the action
 *
 * @returns {Boolean}
 *
 * @properties={typeid:24,uuid:"DFBF5121-0C2E-4244-82E4-143B51FF3C43"}
 */
function onDataChangeTipo(oldValue, newValue, event) {
	elements.tabs_180.visible = true
	if (tipo == null)
		tipo = 0;
	if (tipo == 0)
	{
		elements.grp_cliente.visible	= 0
		elements.grp_proveedor.visible 	= 1
		elements.tabs_180.tabIndex		= 2
		cliente_id = null
	}
	else
		if (tipo == 1)
		{
			elements.grp_cliente.visible	= 1
			elements.grp_proveedor.visible 	= 0
			elements.tabs_180.tabIndex		= 1
			proveedor_id = null
		}
	return true
}

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"1CBD7ED4-6CC6-4E7D-A260-16C6978F869C"}
 */
function buscarDocumento(event) {
	if (proveedor_id)
	{
		var $win = application.createWindow('BUSCADOC',JSWindow.MODAL_DIALOG)
		$win.title = 'Buscar Orden de Compra'
		forms.recepciones_oc_dlg_ind.controller.show($win)
	}
	else
		globals.DIALOGS.showInfoDialog('Aviso','Debe elegir un proveedor primero','OK')  // 23/01/2014
}

/**
 * Callback method for when form is shown.
 *
 * @param {Boolean} [firstShow] form is shown first time after load
 * @param {JSEvent} [event] the event that triggered the action
 *
 * @properties={typeid:24,uuid:"5B58E64D-F643-4BC3-9444-A602A896226D"}
 */
function onShow(firstShow, event) {
	//Por parametrizacion de los forms dentro del tab panel
	forms.recepciones_oc_tab_ind.fFormLlama 		= 'recepciones_carga_cab_ind'
	forms.recepciones_carga_rem_tab_ind.fFormLlama 	= 'recepciones_carga_cab_ind'
	forms.recepciones_oc_dlg_ind.fFormLlama			= 'recepciones_carga_cab_ind'
	globals.gProveedorRecep = null
	
	databaseManager.setAutoSave(false)
	controller.newRecord()
	deposito	= globals.gdeposito_ind
	fecha		= application.getServerTimeStamp()
	application.setValueListItems('recepciones_oc_detalle_din',new Array())
	es_preview 	= 0
	
	fTotRecep 	= 0
	fTotKg 		= 0
	fTotP2 		= 0
	
	fRemNro 		= null
	fRemSucursal 	= null
	fNroFactura 	= null
	fSucursal 		= null
	fLetra 			= null
	
	letra 			= 'X' // para numeracion
	sucursal 		= 1   // para numeracion
	// scopes.globals.zparam_codigo_recepciones // 2013 para numeracion se usa campo tipo
		
	tipo = 0
	onDataChangeTipo()

	for (var i = 1 ; i <= 10 ; i++)
	{
		recep_cabecera_to_recep_detalle_ind.newRecord()
	}  
}

/**
 * @properties={typeid:24,uuid:"1877A355-A649-4988-9A42-6F134CB0668C"}
 * @AllowToRunInFind
 */
function confirmar() {

	if (deposito == null)
	{
		globals.DIALOGS.showInfoDialog('Aviso','Por favor elija un deposito para seguir','OK') // 23/01/2014
		return false
	}

	if (nro_remito == null)
	{
		globals.DIALOGS.showInfoDialog('Aviso','Por favor indique un remito para seguir','OK') // 23/01/2014
		return false
	}
	
	var $tot_recep 	= 0
	
	if (tipo == 0)
	{// Proveedor - Orden de Compra
		var i = 1 ; 
		while (i <= recep_cabecera_to_recep_detalle_ind.getSize())
		{
			var $rcd = recep_cabecera_to_recep_detalle_ind.getRecord(i)
			
			if ($rcd.cod_producto == null)
			{
				recep_cabecera_to_recep_detalle_ind.deleteRecord(i)
			}
			else
			{	
				globals.defineUnidad($rcd,$rcd.recep_detalle_to_productos_ind,$rcd.recep_detalle_to_productos_ind.tipo)
		
				$tot_recep 	+= $rcd.total_renglon
				if ($rcd.recep_detalle_to_oc_detalle_ind != null)
				{
					$tot_actual += $rcd.precio_actual * $rcd.cantidad_alter
					$tot_oc 	+= $rcd.precio_sistema_oc * $rcd.cantidad_alter	
				}
				i++
			}
		}
		razon_social = recep_cabecera_to_proveedor_ind.razon_social
	}
	else
	{//Cliente - Remito
		
		var i = 1;
		while (i <= recep_cabecera_to_recep_detalle_ind.getSize())
		{
			var $rcd 			= recep_cabecera_to_recep_detalle_ind.getRecord(i)
			
			if ($rcd.cod_producto == null)
			{
				recep_cabecera_to_recep_detalle_ind.deleteRecord(i)
			}
			else
			{
				$rcd.total_renglon 	= $rcd.cantidad * $rcd.precio_unitario
				$tot_recep 			+= $rcd.total_renglon
				if ($rcd.recep_detalle_to_rem_detalle_ind.cantidad_pendiente_fac > $rcd.cantidad_alter)
					$rcd.recep_detalle_to_rem_detalle_ind.cantidad_pendiente_fac -= $rcd.cantidad_alter
				else
				{
					$rcd.recep_detalle_to_rem_detalle_ind.cantidad_pendiente_fac = 0
					//TODO aviso
				}
				i++
			}
		}
		razon_social = recep_cabecera_to_clientes_ind.razon_social
	}
	recep_estado = 2
	fTotRecep 	= $tot_recep
	total		= $tot_recep
// NUMERACION - cambiado 12/02/2014
	var fs_nro_recep = databaseManager.getFoundSet(databaseManager.getDataSourceServerName

(controller.getDataSource()),'numeracion_pr')
	fs_nro_recep.loadAllRecords()
	fs_nro_recep.find()
	fs_nro_recep.sucursal = sucursal
	fs_nro_recep.letra = letra
	fs_nro_recep.cod_comprobante = globals.zconf_numeracion_recep
	var found = fs_nro_recep.search()
	if (found != 1)
    {	
	   globals.gMensaje = 'Sucursal o Letra o Tipo de comprobante incorrectos'
	   globals.DIALOGS.showInfoDialog('Recepciones',  globals.gMensaje,  "OK")  //  23/01/2014
	   return false;  
    }
	fs_nro_recep.setSelectedIndex(1)
	fs_nro_recep.ultimo_numero = fs_nro_recep.ultimo_numero + 1
	nro_recep = fs_nro_recep.ultimo_numero;
/* Numeracion anterior
	if (recepciones_to_numeracion_pr.getSize() != 1)
	{//Si no existe en la tabla de numeracion
		globals.gMensaje = 'Sucursal o Tipo de comprobante incorrectos al buscar numeracion'
		globals.gMensajes();
		return false;
	}
	else
	{
		recepciones_to_numeracion_pr.ultimo_numero++
		nro_recep = recepciones_to_numeracion_pr.ultimo_numero
	}*/

	if (databaseManager.saveData())
	{
		if (globals.DIALOGS.showQuestionDialog('Imprime','Recepcion Nº '+ nro_recep+'.¿Desea imprimirla?','Si','No') == 'Si')
		{
			databaseManager.setAutoSave(true)
			es_preview = 1
			//forms.recepciones_cab_imp.buscarTotalesMadera()
			//forms.recepciones_cab_imp_ind.controller.loadRecords(recep_cabecera_id)  // 2013
			forms.recepciones_cab_imp_ind.controller.showPrintPreview(true)
		}
		else
			onShow()
	}
	else
	{
		globals.DIALOGS.showInfoDialog('Error','Ocurrio un error en la grabacion','OK') // 23/01/2014
		// onShow() // 2013
	}
	return true
}

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"252EBF99-8F6E-4772-8D6B-F01F4E951B34"}
 */
function eliminar(event) 
{	/*  ver si se usan kilogramos   // 2013
	if (recep_cabecera_to_recep_detalle_ind.recep_kilogramos > 0)
		fTotKg -= recep_cabecera_to_recep_detalle_ind.recep_kilogramos
	if (recep_cabecera_to_recep_detalle_ind.pie_cuadrado > 0)
		fTotP2 -= recep_cabecera_to_recep_detalle_ind.pie_cuadrado
	*/ 
	recep_cabecera_to_recep_detalle_ind.deleteRecord()
}

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"5C00CC89-9983-4EBC-B7F2-DBCBB9BDBA70"}
 */
function agregar(event) {
	recep_cabecera_to_recep_detalle_ind.newRecord(false)
}

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"CBB312A1-A8FE-464E-8CC1-1EF763146B84"}
 */
function cancelar(event) {
	databaseManager.revertEditedRecords()
	onShow()
}

/**
 * @properties={typeid:24,uuid:"103ACB7F-91B0-40C0-8DF8-EE9445FB85F8"}
 */
function calcularTotales()
{
	fTotP2 = 0
	fTotKg = 0
	total  = 0
	for (var i = 1 ; i <= recep_cabecera_to_recep_detalle_ind.getSize() ; i++)
	{
		var $rcd 			= recep_cabecera_to_recep_detalle_ind.getRecord(i)
		
		if ($rcd.cod_producto != null)
		{
			$rcd.total_renglon 	= $rcd.cantidad * $rcd.precio_unitario
			total += $rcd.total_renglon
		}
	}
}

/**
 * Handle changed data.
 *
 * @param {Object} oldValue old value
 * @param {Object} newValue new value
 * @param {JSEvent} event the event that triggered the action
 *
 * @returns {Boolean}
 *
 * @properties={typeid:24,uuid:"0C9B2799-7270-4997-B518-2F4253C07D3C"}
 */
function onDataChangeProveedor(oldValue, newValue, event) {
	globals.gProveedorRecep = proveedor_id
	return true
}

/**
 * Handle changed data.
 *
 * @param {Object} oldValue old value
 * @param {Object} newValue new value
 * @param {JSEvent} event the event that triggered the action
 *
 * @returns {Boolean}
 *
 * @properties={typeid:24,uuid:"DB79184F-9EDA-4EB5-A477-0D2F330C1A90"}
 */
function onDataChangeRemito(oldValue, newValue, event) {
	if (fRemNro != null && fRemSucursal != null)
	{
		nro_remito = 'X-'+fRemNro+'-'+fRemSucursal
		
		var args = [nro_remito, proveedor_id]
		var query = 'select count(recep_cabecera_id) from recep_cabecera where nro_remito = ? and proveedor_id = ? group by recep_cabecera_id'
		var ds = databaseManager.getDataSetByQuery('infocom',query,args,-1)
		
		var $ctos = ds.getValue(1,1)
		if ($ctos > 0)
		{
			globals.DIALOGS.showInfoDialog('Error','Número de remito duplicado','OK') // 23/01/2014
			return false
		}	
	}
	
	return true
}

/**
 * Handle changed data.
 *
 * @param {Object} oldValue old value
 * @param {Object} newValue new value
 * @param {JSEvent} event the event that triggered the action
 *
 * @returns {Boolean}
 *
 * @properties={typeid:24,uuid:"5CB30E40-C576-40D3-8221-67E50AA631A1"}
 */
function onDataChangeFactura(oldValue, newValue, event) {
	if (fLetra != null && fSucursal != null && fNroFactura != null)
		nro_factura = fLetra + '-' + fSucursal + '-' + fNroFactura
	else
		nro_factura = null
	return true
}
